2. Punkte, Geraden, Ebenen, Parameterdarstellung, Koordinatendarstellung, Normalendarstellung, Schnittpunkte, Schnittgeraden, Abst\344nde, Lot, Schnittwinkel und graphische Darstellungen2.1. Definition von Punkten, Geraden und EbenenDefinition eines Punktes mithilfe der Funktion "point(Name des Punktes, [x,y,z])". Beispiel:with(geom3d):
point(P, [1, 2, -1]);Definition einer Geraden mithilfe der Funktion "line(Name der Geraden, Geradeninformationen)". Beispiel:with(geom3d):
point(P1, [3, 5, 2]):
point(P2, [4, 0, 1]):
line (G, [P1, P2]); (2 Punkte)
point(P, [1, 2, -1]):
line(G, [P, [0,5,-1]]); (Aufpunkt + Richtungsvektor)Definition einer Ebene mithilfe der Funktion "plane(Name der Ebene, Gleichung, [x,y,z])" (bzw. "plane(Name der Ebene, [A, B, C])"). Beispiel:with(geom3d):
plane(E, 3*x-5*y+4*z=5, [x,y,z]); (Koordinatengleichung, siehe auch Normalendarstellung)
point(P1, [3, 5, 2]):
point(P2, [4, 0, 1]):
point(P3, [2, 2, 1]):
plane(E, [P1, P2, P3]); (3 Punkte)
point(P, [1, 2, -1]):
line (G1, [P, [0,5,-1]]):
line (G2, [P, [4,0,1]]):
plane (E, [G1, G2]); (Aufpunkt + Richtungsvektoren)
Bemerke: Die Informationen \374ber die Punkte (bzw. Geraden oder Ebenen) lassen sich mit "detail(P)" (bzw. "detail(G)" oder "detail(E)") abrufen. Alternativ kann man mit "coordinates(P)" die Koordinaten eines Punktes anzeigen lassen und sich \374ber "Equation(G, t)" Geraden- bzw. "Equation(E, [x,y,z]);" Ebeneninformationen einholen.2.2. Parameterdarstellung, Koordinatendarstellung, NormalendarstellungParameterdarstellung ist mithilfe keiner Funktion m\366glich und muss daher direkt berechnet werden.with(geom3d):
point(P1, [3, 5, 2]):
point(P2, [4, 0, 1]):
point(P3, [2, 2, 1]):
plane(E, [P1, P2, P3]): (3 Punkte)
r1:=coordinates(P2)-coordinates(P1):
r2:=coordinates(P3)-coordinates(P1):
Vector([x,y,z])=Vector([coordinates(P1)[1],coordinates(P1)[2],coordinates(P1)[3]])
+lambda*Vector(r1)
+mu*Vector(r2); (Parameterdarstellung)
a:=1: b:=2: c:=-3: d:=5:
plane(E, a*x+b*y+c*z=d, [x,y,z]): (Koordinatendarstellung, siehe auch: Normalendarstellung)
Vector([x,y,z])=Vector([d/a,0,0])
+lambda*Vector([-b/a,1,0])
+mu*Vector([-c/a,0,1]); (Parameterdarstellung)Koordinatendarstellung mithilfe der Funktion "Equation(E, [x,y,z])". Beispiel:with(geom3d):
point(P1, [3, 5, 2]):
point(P2, [4, 0, 1]):
point(P3, [2, 2, 1]):
plane(E, [P1, P2, P3]):
Equation(E, [x,y,z]);Die Normalendarstellung (x,y,z)^T*N=d ("*" Skalarmultiplikation) erh\344lt man unmittelbar aus der Koordinatendarstellung mit N=(2,2,-8)^T und d=0.2.3. Schnittpunkte und SchnittgeradenSchnittpunkte: Gerade-Geradewith(geom3d):
point(P1, [2, 1, -1]): (Aufpunkt der 1. Geraden)
line(G1, [P1, [2,2,-4]]): (1. Gerade)
point(P2, [0, -1, 3]): (Aufpunkt der 2. Geraden)
line(G2, [P2, [1,-1,0]]): (2. Gerade)
intersection (S,G1,G2): (S=Schnittpunkt)
detail(S);
simplify(coordinates(S));Schnittpunkte: Gerade-Ebenewith(geom3d):
point(P1, [-1, -3, 0]): (Aufpunkt der Geraden)
line(G, [P1, [1,3,1]]): (Gerade)
point(P2, [-1, 2, 4]): (Aufpunkt der Ebene)
line(G1, [P, [-1,1,1]]): (1. Richtungsvektor der Ebene)
line(G2, [P, [-3,2,4]]): (2. Richtungsvektor der Ebene)
plane(E, [G1, G2]): (Ebene)
intersection(S,G,E): (S=Schnittpunkt/Durchsto\337punkt)
detail(S);
coordinates(S);Schnittgerade: Ebene-Ebeneplane(E1, 2*x-3*y+z=4, [x,y,z]): (1. Ebene)
point(P, [1, 2, 3]): (Aufpunkt der 2. Ebene)
line(G1, [P, [-1,2,3]]): (1. Richtungsvektor der 2. Ebene)
line(G2, [P, [0,1,-1]]): (2. Richtungsvektor der 2. Ebene)
plane(E2, [G1, G2]): (2. Ebene)
intersection(S,E1,E2): (S=Schnittgerade)
detail(S);2.4. Abst\344ndeAbstand: Punkt-Punktwith(geom3d):
point(P1, [2, 3, 4]): (1. Punkt)
point(P2, [5, 6, 7]): (2. Punkt)
distance(P1,P2); (Abstand Punkt-Punkt?)Abstand: Punkt-Geradewith(geom3d):
point(P, [1, 2, 3]): (Punkt)
point(P1, [1, 0, 1]): (Aufpunkt der Geraden)
line(G, [P1, [0,2,-1]]): (Gerade)
distance(P,G); (Abstand Punkt-Gerade?)Abstand: Punkt-Ebenewith(geom3d):
point(P, [-1, -1, 0]): (Punkt)
plane(E, x+y+z=1, [x,y,z]): (Ebene)
distance(P,E); (Abstand Punkt-Ebene?)Abstand: Gerade-Geradewith(geom3d):
point(P1, [1, 0, -2]): (Aufpunkt der 1. Geraden)
line(G1, [P1, [-1,-1,2]]): (1. Gerade)
point(P2, [2, 1, -1]): (Aufpunkt der 2. Geraden)
line(G2, [P2, [2,2,-4]]): (2. Gerade)
distance(G1,G2); (Abstand Gerade-Gerade?)Abstand: Gerade-Ebenewith(geom3d):
point(P1, [1, 1, 1]): (Aufpunkt der Geraden)
line(G, [P1, [2,1,-1]]): (Gerade)
point(P2, [4, -1, 3]): (Aufpunkt der Ebene)
line(G1, [P2, [1,3,-2]]): (1. Richtungsvektor der Ebene)
line(G2, [P2, [-1,2,-1]]): (2. Richtungsvektor derEbene)
plane(E, [G1, G2]): (Ebene)
distance(G,E); (Abstand Gerade-Ebene?)Abstand: Ebene-Ebenewith(geom3d):
plane(E1, x+y+z=1, [x,y,z]): (1. Ebene)
plane(E2, 2*x+2*y+2*z=-4, [x,y,z]): (2. Ebene)
distance(E1,E2); (Abstand Ebene-Ebene?)2.5. LotLot: Punkt auf Geradewith(geom3d):
point(P, [2, 3, 5]): (Punkt)
point(P1, [-3, -3, 1]): (Aufpunkt der Geraden)
point(P2, [1,7,3]): (Richtungsvektor der Geraden)
line(G, [P1, [coordinates(P2)[1],coordinates(P2)[2],coordinates(P2)[3]]]): (Gerade)
A:=coordinates(P2)[1]*coordinates(P)[1]
-coordinates(P2)[2]*coordinates(P)[3]
+coordinates(P2)[3]*coordinates(P)[3]:
plane(E, coordinates(P2)[1]*x-coordinates(P2)[2]*y+coordinates(P2)[3]*z=A, [x,y,z]):
intersection(S,G,E): (S=Schnittpunkt)
point(P3, coordinates(S)-coordinates(P)):
line(LOTGERADE, [P, [coordinates(P3)[1],coordinates(P3)[2],coordinates(P3)[3]]]):
Equation(LOTGERADE, t);Lot: Punkt auf Ebenewith(geom3d):
point(P, [2, 3, 5]): (Punkt)
plane(E, -2*x-2*y+z=6, [x,y,z]): (Ebene)
line(LOTGERADE, [P, [-2,-2,1]]):
Equation(LOTGERADE, t); (Lotgerade)
Lot: Gerade auf Gerade (F\374r die Kreuzproduktfunktion "CrossProduct(x,y)" wird das Paket "LinearAlgebra" ben\366tigt)with(geom3d):with(LinearAlgebra):
point(P1, [2, -3, -1]): (Aufpunkt der 1. Geraden)
R1 := [1,0,1]: (Richtungsvektor der 1. Geraden)
point(P2, [-3, 4, 1]): (Aufpunkt der 2. Geraden)
R2 := [2,2,1]: (Richtungsvektor der 2. Geraden)
line(G1, [P1, R1]): (1. Gerade)
line(G2, [P2, R2]): (2. Gerade)
KP:=CrossProduct(<R1[1],R1[2],R1[3]>, <R2[1],R2[2],R2[3]>):
line (G3, [P2, [KP[1],KP[2],KP[3]]]):
plane (E2, [G2, G3]): (Aufpunkt + Richtungsvektoren)
intersection(S1,G1,E2):
LOTPUNKT_G1 := coordinates(S1); (Lotpunkt auf der 1. Geraden)
line (G4, [P1, [KP[1],KP[2],KP[3]]]):
plane (E1, [G1, G4]): (Aufpunkt + Richtungsvektoren)
intersection(S2,G2,E1):
LOTPUNKT_G2 := coordinates(S2); (Lotpunkt auf der 2. Geraden)
R3 := LOTPUNKT_G2-LOTPUNKT_G1: (Richtungsvektor der Lotgeraden)
line(LOTGERADE, [S1, R3]): (Lotgerade)
Equation(LOTGERADE, t);2.6. SchnittwinkelSchnittwinkel: Gerade-Geradewith(geom3d):
point(P1, [2, 1, -1]): (Aufpunkt der 1. Geraden)
line(G1, [P1, [2,2,-4]]): (1. Gerade)
point(P2, [0, -1, 3]): (Aufpunkt der 2. Geraden)
line(G2, [P2, [1,-1,0]]): (2. Gerade)
FindAngle(G1,G2); (Winkel Gerade-Gerade?)
evalf(FindAngle(G1,G2),2); (Winkel Gerade-Gerade?)Schnittwinkel: Gerade-Ebenewith(geom3d):
point(P1, [-1, -3, 0]): (Aufpunkt der Geraden)
line(G, [P1, [1,3,1]]): (Gerade)
point(P2, [-1, 2, 4]): (Aufpunkt der Ebene)
line(G1, [P, [-1,1,1]]): (1. Richtungsvektor der Ebene)
line(G2, [P, [-3,2,4]]): (2. Richtungsvektor der Ebene)
plane(E, [G1, G2]): (Ebene)
FindAngle(G,E); (Winkel Gerade-Ebene?)
evalf(FindAngle(G,E),2); (Winkel Gerade-Ebene?)Schnittwinkel: Ebene-Ebeneplane(E1, 2*x-3*y+z=4, [x,y,z]): (1. Ebene)
point(P, [1, 2, 3]): (Aufpunkt der 2. Ebene)
line(G1, [P, [-1,2,3]]): (1. Richtungsvektor der 2. Ebene)
line(G2, [P, [0,1,-1]]): (2. Richtungsvektor der 2. Ebene)
plane(E2, [G1, G2]): (2. Ebene)
FindAngle(E1,E2); (Winkel Ebene-Ebene?)
evalf(FindAngle(E1,E2),2); (Winkel Ebene-Ebene?)2.7. Parallel, orthogonal, Punkt in EbeneParallel: Gerade-Geradewith(geom3d):
point(P1, [1, 0, -2]): (Aufpunkt der 1. Geraden)
line(G1, [P1, [-1,-1,2]]): (1. Gerade)
point(P2, [2, 1, -1]): (Aufpunkt der 2. Geraden)
line(G2, [P2, [2,2,-4]]): (2. Gerade)
AreParallel(G1,G2); (Sind Geraden parallel?)Parallel: Gerade-Ebenewith(geom3d):
point(P1, [1, 1, 1]): (Aufpunkt der Geraden)
line(G, [P1, [2,1,-1]]): (Gerade)
point(P2, [4, -1, 3]): (Aufpunkt der Ebene)
line(G1, [P2, [1,3,-2]]): (1. Richtungsvektor der Ebene)
line(G2, [P2, [-1,2,-1]]): (2. Richtungsvektor derEbene)
plane(E, [G1, G2]): (Ebene)
AreParallel(G,E); (Sind Gerade-Ebene parallel?)Parallel: Ebenen-Ebenewith(geom3d):
plane(E1, x+y+z=1, [x,y,z]): (1. Ebene)
plane(E2, 2*x+2*y+2*z=-4, [x,y,z]): (2. Ebene)
AreParallel(E1,E2); (Sind Ebenen parallel?)Test f\374r "Punkt in Ebene": (ist eine Alternative zu Abstand Punkt-Ebene=0 und Abstand Punkt-Ebene!=0)with(geom3d):
point(P1, [0, 0, 0]): (Punkt 1)
point(P2, [-1, 2, 1]): (Punkt 2)
point(P3, [3, 5, 2]):
point(P4, [4, 0, 1]):
point(P5, [2, 2, 1]):
plane(E, [P3, P4, P5]): (Ebene)
IsOnObject(P1,E); (Punkt 1 in Ebene?)
IsOnObject(P2,E); (Punkt 2 in Ebene?)Abschlie\337end sei bemerkt, dass die Funktion "ArePerpendicular()" testet, ob zwei Objekte senkrecht aufeinander stehen.TTdSMApJM1JUQUJMRV9TQVZFLzM1ODI3MlgqJSlhbnl0aGluZ0c2IjYiW2dsISMlISEhIiQiJCUieEclInlHJSJ6RzYiCg==TTdSMApJM1JUQUJMRV9TQVZFLzU3MzkyMFgqJSlhbnl0aGluZ0c2IjYiW2dsISMlISEhIiQiJCwoIiIkIiIiJSdsYW1iZGFHRiklI211RyEiIiwoCiIiJkYpRiohIiZGKyEiJCwoIiIjRilGKkYsRitGLDYiCg==TTdSMApJM1JUQUJMRV9TQVZFLzU3NzY2MFgqJSlhbnl0aGluZ0c2IjYiW2dsISMlISEhIiQiJCUieEclInlHJSJ6RzYiCg==TTdSMApJM1JUQUJMRV9TQVZFLzU4MzA4NFgqJSlhbnl0aGluZ0c2IjYiW2dsISMlISEhIiQiJCwoIiImIiIiJSdsYW1iZGFHISIjJSNtdUciIiRGCipGLDYiCg==